package com.its.service;

import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;

import com.its.dao.ModelDao;
import com.its.model.Model;
import com.its.util.Pager;

public class ModelService <M extends Model, D extends ModelDao<M>>{
	@Autowired
	D dao;
	
	public int total(HashMap<String, Object> args) {
		return dao.total(args);
	}
	
	public List<M> list(HashMap<String, Object> args) {
		return dao.list(args);
	}
	
	
	public List<M> list(HashMap<String, Object> args, Pager pager) {
		args.put("start", (pager.getPageNo() - 1) * pager.getPageSize());
		args.put("pageSize", pager.getPageSize());
		
		return list(args);
	}
	
	public M get(int id) {
		return dao.get(id);
	}
	
	public int add(M model) throws DataAccessException {
		return dao.add(model);
	}
	
	public int update(M model) {
		return dao.update(model);
	}
	
	public int remove(int id) {
		return dao.remove(id);
	}
}
